home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / minmax_1 / frmsubcl.frm (.txt) next >
Visual Basic Form  |  1998-10-19  |  2KB  |  42 lines

  1. VERSION 5.00
  2. Begin VB.Form frmSubclass 
  3.    AutoRedraw      =   -1  'True
  4.    Caption         =   "Min & Max Form Size Demo"
  5.    ClientHeight    =   3885
  6.    ClientLeft      =   1020
  7.    ClientTop       =   930
  8.    ClientWidth     =   6045
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   259
  11.    ScaleMode       =   3  'Pixel
  12.    ScaleWidth      =   403
  13. Attribute VB_Name = "frmSubclass"
  14. Attribute VB_GlobalNameSpace = False
  15. Attribute VB_Creatable = False
  16. Attribute VB_PredeclaredId = True
  17. Attribute VB_Exposed = False
  18.   Option Explicit
  19.   ' A demo project showing how to prevent the user from making a window smaller
  20.   ' or larger than you want them to through subclassing the WM_GETMINMAXINFO message.
  21.   ' by Bryan Stafford of New Vision Software
  22.  - newvision@imt.net
  23.   ' this demo is released into the public domain "as is" without
  24.   ' warranty or guaranty of any kind.  In other words, use at
  25.   ' your own risk.
  26.   Private Const GWL_WNDPROC As Long = (-4&)
  27.   ' API call to alter the class data for this window
  28.   Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, _
  29.                                                               ByVal nIndex&, ByVal dwNewLong&)
  30.                                                               
  31. Private Sub Form_Load()
  32.   ' take control of message processing by installing our message handling
  33.   ' routine into the chain of message routines for this window
  34.   procOld = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
  35.                             
  36. End Sub
  37. Private Sub Form_Unload(Cancel As Integer)
  38.   ' give message processing control back to VB
  39.   ' if you don't do this you WILL crash!!!
  40.   Call SetWindowLong(hWnd, GWL_WNDPROC, procOld)
  41. End Sub
  42.